<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Cwp\V20180228\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeScanState response structure.
 *
 * @method integer getScanState() Obtain 0 - never scanned; 1 - scan in progress; 2 - scan completed; 3 - stop in progress; 4 - stop completed
 * @method void setScanState(integer $ScanState) Set 0 - never scanned; 1 - scan in progress; 2 - scan completed; 3 - stop in progress; 4 - stop completed
 * @method integer getSchedule() Obtain Scan progress
 * @method void setSchedule(integer $Schedule) Set Scan progress
 * @method integer getTaskId() Obtain Task ID
 * @method void setTaskId(integer $TaskId) Set Task ID
 * @method array getVulId() Obtain Vulnerability ID of task scan
 * @method void setVulId(array $VulId) Set Vulnerability ID of task scan
 * @method integer getType() Obtain 0 - one-click detection; 1 - regular detection
 * @method void setType(integer $Type) Set 0 - one-click detection; 1 - regular detection
 * @method string getScanBeginTime() Obtain Scan start time
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setScanBeginTime(string $ScanBeginTime) Set Scan start time
Note: This field may return null, indicating that no valid values can be obtained.
 * @method integer getRiskEventCount() Obtain Number of vulnerabilities scanned
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setRiskEventCount(integer $RiskEventCount) Set Number of vulnerabilities scanned
Note: This field may return null, indicating that no valid values can be obtained.
 * @method string getScanEndTime() Obtain Scan end time
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setScanEndTime(string $ScanEndTime) Set Scan end time
Note: This field may return null, indicating that no valid values can be obtained.
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeScanStateResponse extends AbstractModel
{
    /**
     * @var integer 0 - never scanned; 1 - scan in progress; 2 - scan completed; 3 - stop in progress; 4 - stop completed
     */
    public $ScanState;

    /**
     * @var integer Scan progress
     */
    public $Schedule;

    /**
     * @var integer Task ID
     */
    public $TaskId;

    /**
     * @var array Vulnerability ID of task scan
     */
    public $VulId;

    /**
     * @var integer 0 - one-click detection; 1 - regular detection
     */
    public $Type;

    /**
     * @var string Scan start time
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $ScanBeginTime;

    /**
     * @var integer Number of vulnerabilities scanned
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $RiskEventCount;

    /**
     * @var string Scan end time
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $ScanEndTime;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param integer $ScanState 0 - never scanned; 1 - scan in progress; 2 - scan completed; 3 - stop in progress; 4 - stop completed
     * @param integer $Schedule Scan progress
     * @param integer $TaskId Task ID
     * @param array $VulId Vulnerability ID of task scan
     * @param integer $Type 0 - one-click detection; 1 - regular detection
     * @param string $ScanBeginTime Scan start time
Note: This field may return null, indicating that no valid values can be obtained.
     * @param integer $RiskEventCount Number of vulnerabilities scanned
Note: This field may return null, indicating that no valid values can be obtained.
     * @param string $ScanEndTime Scan end time
Note: This field may return null, indicating that no valid values can be obtained.
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("ScanState",$param) and $param["ScanState"] !== null) {
            $this->ScanState = $param["ScanState"];
        }

        if (array_key_exists("Schedule",$param) and $param["Schedule"] !== null) {
            $this->Schedule = $param["Schedule"];
        }

        if (array_key_exists("TaskId",$param) and $param["TaskId"] !== null) {
            $this->TaskId = $param["TaskId"];
        }

        if (array_key_exists("VulId",$param) and $param["VulId"] !== null) {
            $this->VulId = $param["VulId"];
        }

        if (array_key_exists("Type",$param) and $param["Type"] !== null) {
            $this->Type = $param["Type"];
        }

        if (array_key_exists("ScanBeginTime",$param) and $param["ScanBeginTime"] !== null) {
            $this->ScanBeginTime = $param["ScanBeginTime"];
        }

        if (array_key_exists("RiskEventCount",$param) and $param["RiskEventCount"] !== null) {
            $this->RiskEventCount = $param["RiskEventCount"];
        }

        if (array_key_exists("ScanEndTime",$param) and $param["ScanEndTime"] !== null) {
            $this->ScanEndTime = $param["ScanEndTime"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
